home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / source / lib / powerd_lib.lha / PowerD_PPC / Rnd.ass < prev    next >
Text File  |  2002-02-10  |  513b  |  39 lines

  1. # Rnd(seed:r3:LONG)(LONG)
  2.  
  3.     .text
  4.     .sdreg    r2
  5.     .global    _Rnd
  6.  
  7. _Rnd:    mflr    r9
  8.     bl    .jmp
  9. .rnd:    .long    0
  10. .jmp:    mflr    r10
  11.     mtlr    r9
  12.     mr.    r5,r3
  13.     blt    .set
  14.     subi    r4,r5,1
  15.     lwz    r3,0(r10)
  16. .l2:    addco.    r3,r3,r3
  17.     bgt    .l3
  18.     xoris    r3,r3,0x1d87
  19.     xori    r3,r3,0x2b41
  20. .l3:    srwi.    r4,r4,1
  21.     bne    .l2
  22.     stw    r3,0(r10)
  23.     mr.    r5,r5
  24.     bne    .l4
  25.     rotlwi.    r3,r3,16
  26.     b    .l5
  27. .l4:    andi.    r3,r3,0xffff
  28.     andi.    r5,r5,0xffff
  29.     mullw    r3,r3,r5
  30. .l5:    rotlwi.    r3,r3,16
  31.     andi.    r3,r3,0xffff
  32.     blr
  33. .set:    neg    r5,r5
  34.     stw    r5,0(r10)
  35.     blr
  36.  
  37.     .type    _Rnd,@function
  38.     .size    _Rnd,$-_Rnd
  39.